#ifndef AGENT_H
#define AGENT_H

#include <tsubamegaeshi-base/connection.h>
#include <tsubamegaeshi-base/behavior.h>
#include <tsubamegaeshi-base/worldmodel.h>

#include <string>
#include <boost/shared_ptr.hpp>

class Agent
{
  Connection::shared_ptr conn_;
  Behavior::shared_ptr behavior_;
  bool loop_;

public:
  typedef boost::shared_ptr< Agent > shared_ptr;
  Agent(Behavior::shared_ptr b, Connection::shared_ptr c);
  Agent(Behavior::shared_ptr b, const std::string& h="127.0.0.1", const int p=3100);
  ~Agent();
  
  void run();
  void done();
  void stop();

};

#endif//AGENT_H
